home *** CD-ROM | disk | FTP | other *** search
/ F1 Licenseware / F1 Licenseware - Volume 1.iso / disks / 049b.dms / 049b.adf / MORE_SOURCE_CODE / Line.AMOS / Line.amosSourceCode
AMOS Source Code  |  1992-02-26  |  823b  |  50 lines

  1. 'Very fast line routine. 
  2. '
  3. 'Author ?
  4. '
  5. LINE[10,10,22,33]
  6. ' Good for sampling points on a straight line for example. 
  7. Procedure LINE[X1,Y1,X2,Y2]
  8.    XD=X2-X1
  9.    YD=Y2-Y1
  10.    SS=1
  11.    If XD<0
  12.       XD=Abs(XD)
  13.       SS=-SS
  14.    End If 
  15.    If YD<0
  16.       YD=Abs(YD)
  17.       SS=-SS
  18.    End If 
  19.    If XD>YD
  20.       CC=XD/2
  21.       If X1>X2
  22.          Swap X1,X2
  23.          Swap Y1,Y2
  24.       End If 
  25.       YT=Y1
  26.       For XT=X1 To X2
  27.          Plot XT,YT
  28.          Add CC,YD
  29.          If CC>XD
  30.             Add YT,SS
  31.             Add CC,-XD
  32.          End If 
  33.       Next XT
  34.    Else 
  35.       CC=YD/2
  36.       If Y1>Y2
  37.          Swap Y1,Y2
  38.          Swap X1,X2
  39.       End If 
  40.       XT=X1
  41.       For YT=Y1 To Y2
  42.          Plot XT,YT
  43.          Add CC,XD
  44.          If CC>=YD
  45.             Add XT,SS
  46.             Add CC,-YD
  47.          End If 
  48.       Next YT
  49.    End If 
  50. End Proc